package sql.ddl.coluna;

import sql.ddl.TokensSQL;

public class Coluna implements TokensSQL {
	String tipo;

	String nome;

	String valorDefault = null;

	public Coluna(String tipo, String nome) {
		this.tipo = tipo;
		this.nome = nome;
	}

	public Coluna(String tipo, String nome, boolean NOTNULL) {
		this(tipo, nome, NOTNULL ? "NOT NULL" : "NULL");
	}

	public Coluna(String tipo, String nome, String valorDefault) {
		this(tipo, nome);
		this.valorDefault = valorDefault;
	}

	public String codigoSQL() throws Exception {
		return nome + SPACE + tipo + montarNull();
	}

	private String montarNull() {
		return valorDefault == null ? NONVALUE : SPACE + valorDefault;
	}

	public String getNome() {
		return nome;
	}

	public String getTipo() {
		return tipo;
	}

	public boolean equals(Object obj) {
		return super.equals(obj) || ((Coluna) obj).getNome().equals(nome);
	}

}
